package com.chenglai.order.pojo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.List;

/**
 * @author Jiang
 * @create 2023-11-17 14:24:33
 */
@ApiModel(value = "t_cl_mainOrder")
@Table(name = "t_cl_mainOrder")
public class MainOrder implements Serializable {

    @Id
    @Column(name = "mo_id", updatable = false)
    @ApiModelProperty(value = "null")
    private Integer moId;

    /**
     * 门店ID
     */
    @Column(name = "shop_id")
    @ApiModelProperty(value = "门店ID")
    private Integer shopId;

    /**
     * 用户ID
     */
    @Column(name = "user_id")
    @ApiModelProperty(value = "用户ID")
    private Integer userId;

    /**
     * 订单号
     */
    @Column(name = "order_num")
    @ApiModelProperty(value = "订单号")
    private String orderNum;

    /**
     * 状态0未支付1已支付2已发货3已完成4已取消5已退款
     */
    @Column(name = "order_status")
    @ApiModelProperty(value = "状态0未支付1已支付2已发货3已完成4已取消5已退款")
    private Integer orderStatus;

    /**
     * 下单时间
     */
    @Column(name = "order_time")
    @ApiModelProperty(value = "下单时间")
    private String orderTime;

    /**
     * 支付时间
     */
    @Column(name = "pay_time")
    @ApiModelProperty(value = "支付时间")
    private String payTime;

    /**
     * 总价
     */
    @Column(name = "total_sum")
    @ApiModelProperty(value = "总价")
    private Double totalSum;

    /**
     * 实付价格
     */
    @Column(name = "real_sum")
    @ApiModelProperty(value = "实付价格")
    private Double realSum;

    /**
     * 发货时间
     */
    @Column(name = "send_time")
    @ApiModelProperty(value = "发货时间")
    private String sendTime;

    /**
     * 收货时间
     */
    @Column(name = "success_time")
    @ApiModelProperty(value = "收货时间")
    private String successTime;

    /**
     * 物流单号
     */
    @Column(name = "order_wuliu")
    @ApiModelProperty(value = "物流单号")
    private String orderWuliu;

    /**
     * 物流公司代码
     */
    @Column(name = "order_com")
    @ApiModelProperty(value = "物流公司代码")
    private String orderCom;

    /**
     * 物流公司名称
     */
    @Column(name = "order_wuliuName")
    @ApiModelProperty(value = "物流公司名称")
    private String orderWuliuName;

    /**
     * 邮费
     */
    @Column(name = "post_sum")
    @ApiModelProperty(value = "邮费")
    private Double postSum;

    /**
     * 收货人名称
     */
    @Column(name = "address_name")
    @ApiModelProperty(value = "收货人名称")
    private String addressName;

    /**
     * 收货人电话
     */
    @Column(name = "address_tel")
    @ApiModelProperty(value = "收货人电话")
    private String addressTel;

    /**
     * 收货地址
     */
    @Column(name = "address_detail")
    @ApiModelProperty(value = "收货地址")
    private String addressDetail;

    /**
     * 微信支付流水号
     */
    @Column(name = "transaction_id")
    @ApiModelProperty(value = "微信支付流水号")
    private String transactionId;

    /**
     * 退款备注
     */
    @Column(name = "return_note")
    @ApiModelProperty(value = "退款备注")
    private String returnNote;

    /**
     * 退款备注
     */
    @Column(name = "return_reason")
    @ApiModelProperty(value = "退款备注")
    private String returnReason;

    /**
     * 退款操作人
     */
    @Column(name = "return_id")
    @ApiModelProperty(value = "退款操作人")
    private String returnId;

    /**
     * 退货物流单号
     */
    @Column(name = "return_wuliu")
    @ApiModelProperty(value = "退货物流单号")
    private String returnWuliu;

    /**
     * 订单备注
     */
    @Column(name = "mo_note")
    @ApiModelProperty(value = "订单备注")
    private String moNote;

    /**
     * 预留优惠卷ID
     */
    @Column(name = "discount_coupon")
    @ApiModelProperty(value = "预留优惠卷ID")
    private Integer discountCoupon;

    /**
     * 特殊处理备注
     */
    @Column(name = "receive_detail")
    @ApiModelProperty(value = "特殊处理备注")
    private String receiveDetail;

    /**
     * 订单来源
     */
    @Column(name = "order_from")
    @ApiModelProperty(value = "订单来源")
    private Integer orderFrom;

    /**
     * 开团商品的标的主键groupId
     */
    @Column(name = "group_id")
    @ApiModelProperty(value = "开团商品的标的主键groupId")
    private Integer groupId;

    /**
     * 开团商品的标的主键groupId
     */
    @Column(name = "is_groupSuccess")
    @ApiModelProperty(value = "是否拼团成功默认为0，拼团成功为1")
    private Integer isGroupSuccess;


    @Transient
    private List<Order> orderList;



    /**
     * 每团人数
     */
    @Transient
    private Integer groupNum;


    public Integer getMoId() {
        return moId;
    }

    public void setMoId(Integer moId) {
        this.moId = moId;
    }


    public Integer getShopId() {
        return shopId;
    }

    public void setShopId(Integer shopId) {
        this.shopId = shopId;
    }


    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }


    public String getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(String orderNum) {
        this.orderNum = orderNum;
    }

    public Integer getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(Integer orderStatus) {
        this.orderStatus = orderStatus;
    }

    public String getOrderTime() {
        return orderTime;
    }

    public void setOrderTime(String orderTime) {
        this.orderTime = orderTime;
    }


    public String getPayTime() {
        return payTime;
    }

    public void setPayTime(String payTime) {
        this.payTime = payTime;
    }


    public Double getTotalSum() {
        return totalSum;
    }

    public void setTotalSum(Double totalSum) {
        this.totalSum = totalSum;
    }


    public Double getRealSum() {
        return realSum;
    }

    public void setRealSum(Double realSum) {
        this.realSum = realSum;
    }


    public String getSendTime() {
        return sendTime;
    }

    public void setSendTime(String sendTime) {
        this.sendTime = sendTime;
    }


    public String getSuccessTime() {
        return successTime;
    }

    public void setSuccessTime(String successTime) {
        this.successTime = successTime;
    }


    public String getOrderWuliu() {
        return orderWuliu;
    }

    public void setOrderWuliu(String orderWuliu) {
        this.orderWuliu = orderWuliu;
    }


    public String getOrderCom() {
        return orderCom;
    }

    public void setOrderCom(String orderCom) {
        this.orderCom = orderCom;
    }


    public String getOrderWuliuName() {
        return orderWuliuName;
    }

    public void setOrderWuliuName(String orderWuliuName) {
        this.orderWuliuName = orderWuliuName;
    }


    public Double getPostSum() {
        return postSum;
    }

    public void setPostSum(Double postSum) {
        this.postSum = postSum;
    }


    public String getAddressName() {
        return addressName;
    }

    public void setAddressName(String addressName) {
        this.addressName = addressName;
    }


    public String getAddressTel() {
        return addressTel;
    }

    public void setAddressTel(String addressTel) {
        this.addressTel = addressTel;
    }


    public String getAddressDetail() {
        return addressDetail;
    }

    public void setAddressDetail(String addressDetail) {
        this.addressDetail = addressDetail;
    }


    public String getTransactionId() {
        return transactionId;
    }

    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }


    public String getReturnNote() {
        return returnNote;
    }

    public void setReturnNote(String returnNote) {
        this.returnNote = returnNote;
    }


    public String getReturnReason() {
        return returnReason;
    }

    public void setReturnReason(String returnReason) {
        this.returnReason = returnReason;
    }


    public String getReturnId() {
        return returnId;
    }

    public void setReturnId(String returnId) {
        this.returnId = returnId;
    }


    public String getReturnWuliu() {
        return returnWuliu;
    }

    public void setReturnWuliu(String returnWuliu) {
        this.returnWuliu = returnWuliu;
    }


    public String getMoNote() {
        return moNote;
    }

    public void setMoNote(String moNote) {
        this.moNote = moNote;
    }


    public Integer getDiscountCoupon() {
        return discountCoupon;
    }

    public void setDiscountCoupon(Integer discountCoupon) {
        this.discountCoupon = discountCoupon;
    }


    public String getReceiveDetail() {
        return receiveDetail;
    }

    public void setReceiveDetail(String receiveDetail) {
        this.receiveDetail = receiveDetail;
    }

    public List<Order> getOrderList() {
        return orderList;
    }

    public void setOrderList(List<Order> orderList) {
        this.orderList = orderList;
    }

    public Integer getOrderFrom() {
        return orderFrom;
    }

    public void setOrderFrom(Integer orderFrom) {
        this.orderFrom = orderFrom;
    }

    public Integer getGroupId() {
        return groupId;
    }

    public void setGroupId(Integer groupId) {
        this.groupId = groupId;
    }

    public Integer getGroupNum() {
        return groupNum;
    }

    public void setGroupNum(Integer groupNum) {
        this.groupNum = groupNum;
    }

    public Integer getIsGroupSuccess() {
        return isGroupSuccess;
    }

    public void setIsGroupSuccess(Integer isGroupSuccess) {
        this.isGroupSuccess = isGroupSuccess;
    }
}
